package com.priox.sigar.application.mappers;

import com.googlecode.ehcache.annotations.Cacheable;
import com.priox.sigar.client.dto.AcreedorDTO;
import com.priox.sigar.client.dto.ClienteDTO;
import com.priox.sigar.client.dto.OperacionCuentaDTO;
import com.priox.sigar.client.flt.AcreedorFlt;
import com.priox.sigar.client.flt.ClienteFlt;

import java.util.List;

public interface AcreedorMapper {

    public List<AcreedorDTO> findAll();


    @Cacheable(cacheName = "findByAcreedorId")
    public List<AcreedorDTO> findByAcreedorId(String acreedorId);

    List<AcreedorDTO> find(AcreedorFlt filtroBusqueda);
    Integer total(AcreedorFlt filtroBusqueda);



    List<AcreedorDTO> findByFilter(AcreedorFlt filtroBusqueda);

    List<AcreedorDTO> findByFilterChekpoint(AcreedorFlt filtroBusqueda);

    Integer existeCuentaId(String acreedorId);

    Integer countDocumentoAcreedor();
    List<AcreedorDTO>  obtenerAcreedorPorDocumento(OperacionCuentaDTO numeroDocumento);

    void deleteAll();
    void deleteDocumentoAll();

    void executeUpdateAcreedorSociedad();

    void deleteSociedad(String acreedorId);



}
